"Exercicio 1.6"
"Sobre novo-if"

(define (media x y)
  (/ (+ x y) 2))

(define (quadrado x) (* x x))

(define (melhora chute x)
  (media chute (/ x chute)))

(define (bom-suficiente? chute x)
  (< (abs (- (quadrado chute) x)) 0.001))

(define (raiz-iter chute x)
  (novo-if (bom-suficiente? chute x)
      chute
      (raiz-iter (melhora chute x)
                 x)))

(define (novo-if predicado clausula-sim clausula-nao)
  (cond (predicado clausula-sim)
        (else clausula-nao)))

(define (raiz x) (raiz-iter 1.0 x))

"Com o novo-if, o programa nunca termina"
"Pra testar, é só tentar rodar (raiz 16)"